IdentityProvider: getUserInfo() statische Methode
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Die statische Methode getUserInfo()
der IdentityProvider
-Schnittstelle gibt Informationen über einen angemeldeten Benutzer zurück, die verwendet werden können, um eine personalisierte Begrüßungsnachricht und einen Anmeldeknopf bereitzustellen. Diese Methode muss innerhalb eines Identitätsanbieter (IdP)-Ursprungs-<iframe>
aufgerufen werden, damit RP-Skripte nicht auf die Daten zugreifen können. Dies muss geschehen, nachdem ein Benutzer bei einer vertrauenden Partei (RP)-Website angemeldet wurde.
Dieses Muster ist bereits auf Websites üblich, die Identitätsföderation für die Anmeldung nutzen, aber getUserInfo()
bietet eine Möglichkeit, dies ohne den Einsatz von Third-Party-Cookies zu erreichen.
Nutzungshinweise
Wenn getUserInfo()
aufgerufen wird, wird der Browser eine Anfrage an den IdP Accounts-Listen-Endpunkt für die Benutzerinformationen nur dann senden, wenn beide der folgenden Bedingungen zutreffen:
- Der Benutzer hat sich zuvor mit dem IdP über FedCM in derselben Browserinstanz bei der RP angemeldet und die Daten wurden nicht gelöscht.
- Der Benutzer ist in derselben Browserinstanz beim IdP angemeldet.
getUserInfo()
muss innerhalb eines eingebetteten <iframe>
aufgerufen werden und der Ursprung der eingebetteten Website muss mit der configURL
des IdP übereinstimmen. Darüber hinaus muss das einbettende HTML seine Nutzung ausdrücklich über die identity-credentials-get
Permissions-Policy erlauben:
<iframe
src="https://idp.example/signin"
allow="identity-credentials-get"></iframe>
Syntax
IdentityProvider.getUserInfo(config)
Parameter
config
-
Ein Konfigurationsobjekt, das die folgenden Eigenschaften enthalten kann:
configURL
-
Die URL der Konfigurationsdatei des Identitätsanbieters, von dem Sie Benutzerinformationen erhalten möchten.
clientId
-
Die vom IdP ausgegebene Client-Kennung der RP.
Rückgabewert
Ein Promise
, das mit einem Array von Objekten erfüllt wird, von denen jedes Informationen über ein separates Benutzerkonto enthält. Jedes Objekt enthält die folgenden Eigenschaften:
Ausnahmen
InvalidStateError
DOMException
-
Wird ausgelöst, wenn die angegebene
configURL
ungültig ist oder der Ursprung des eingebetteten Dokuments nicht mit derconfigURL
übereinstimmt. NetworkError
DOMException
-
Wird ausgelöst, wenn der Browser den IdP nicht erreichen kann oder wenn
getUserInfo()
vom Top-Level-Dokument aus aufgerufen wird. NotAllowedError
DOMException
-
Wird ausgelöst, wenn das einbettende
<iframe>
keineidentity-credentials-get
Permissions-Policy gesetzt hat, um die Nutzung vongetUserInfo()
zu erlauben oder wenn die FedCM API global durch eine Richtlinie auf dem Top-Level-Dokument deaktiviert ist.
Beispiele
// Iframe displaying a page from the https://idp.example origin
const userInfo = await IdentityProvider.getUserInfo({
configURL: "https://idp.example/fedcm.json",
clientId: "client1234",
});
// IdentityProvider.getUserInfo() returns an array of user information.
if (userInfo.length > 0) {
// Returning accounts should be first, so the first account received
// is guaranteed to be a returning account
const name = userInfo[0].name;
const givenName = userInfo[0].given_name;
const displayName = givenName || name;
const picture = userInfo[0].picture;
const email = userInfo[0].email;
// …
// Render the personalized sign-in button using the information above
}
Spezifikationen
Specification |
---|
Federated Credential Management API # dom-identityprovider-getuserinfo |
Browser-Kompatibilität
Siehe auch
- Federated Credential Management API auf privacysandbox.google.com (2023)